SQL Server - Módulo de Acesso ao MySQL Server via Windows Forms
Imports MySql.Data.MySqlClient

'Project, Add Reference, Extensions, MySQL.Data
Module AcessoMySQL

#Region "mysql"

    Public strcondb As String 'string de conexão com o mysql
    Public erro As String 'mensagem de erro do mysql
    Public dbconn As MySqlConnection 'conexão com o mysql
    Public dbCMD As MySqlCommand 'comando para o mysql
    Public dtrMySQL As MySqlDataReader 'acesso aos dados do mysql

    Public Sub DefStrConexaoMaterJus()
        'Dim nome_maquina As String = Environment.MachineName

        'bd local
        'Dim strServidor As String = "localsrv" 'servidor
        'Dim strBD As String = "bdsite" 'banco de dados
        'Dim StrUsuario As String = "ususite" 'usuário
        'Dim StrSenha As String = "Senha@Site" 'senha

        'MasterJus redehost
        Dim strServidor As String = "mysql.hospedagem.com.br" 'servidor
        Dim strBD As String = "bd" 'banco de dados
        Dim StrUsuario As String = "ususite" 'usuário
        Dim StrSenha As String = "senhasite@2" 'senha
        Dim Porta As String = "41890" 'porta

        'strcondb = "Database=" + strBD + ";Data Source=" + strServidor + ";User Id=" + StrUsuario + ";Password=" + StrSenha + "; pooling=false; Convert Zero Datetime=True; Allow Zero Datetime=True"        original asp net
        strcondb = "Server=" + strServidor + ";Port=" + Porta + ";Database=" + strBD + ";Uid=" + StrUsuario + ";Pwd = " + StrSenha + ";"
    End Sub
    Public Sub DefStrConexaoLocal()
        'Dim nome_maquina As String = Environment.MachineName

        Dim strServidor As String = "localhost" 'servidor
        Dim strBD As String = "sgea" 'banco de dados
        Dim StrUsuario As String = "sgeaUSUsgea" 'usuário
        Dim StrSenha As String = "Senha@SGEA" 'senha

        'strcondb = "Database=" + strBD + ";Data Source=" + strServidor + ";User Id=" + StrUsuario + ";Password=" + StrSenha + "; pooling=false; Convert Zero Datetime=True; Allow Zero Datetime=True"        original asp net
        strcondb = "Server=" + strServidor + ";Database=" + strBD + ";Uid=" + StrUsuario + ";Pwd = " + StrSenha + ";"
    End Sub

    Public Sub DefStrConexao()
        If FrmPrincipal.lblBD.Text = "LOCAL" Then
            DefStrConexaoLocal()
        Else
            DefStrConexaoMaterJus()
        End If

    End Sub


    Public Function BDDA(ByVal Query As String) As MySqlDataAdapter
        'NÃO utilizar com gridview
        erro = ""
        Try
            Dim conexao As MySqlConnection = New MySqlConnection(strcondb)
            Dim da As MySqlDataAdapter = New MySqlDataAdapter()
            da.SelectCommand = New MySqlCommand(Query, conexao)
            Dim ds As DataSet = New DataSet()
            da.Fill(ds)
            ds.Dispose()
            'da.Dispose()
            'conexao.Close()
            'conexao.Dispose()
            Return da
        Catch ex As Exception
            erro = "Falha Função BDDA:" + ex.Message
            Return Nothing
        End Try
        Return Nothing
    End Function
    Public Function BDDS(ByVal Query As String) As DataSet
        'utilizar com gridview
        erro = ""

        Try
            Dim conexao As MySqlConnection = New MySqlConnection(strcondb)
            Dim da As MySqlDataAdapter = New MySqlDataAdapter()
            da.SelectCommand = New MySqlCommand(Query, conexao)
            Dim ds As DataSet = New DataSet() 'Criando objeto DataSet para trabalhar com os dados
            da.Fill(ds) 'Preencher objeto Dataset
            'ds.Dispose()                                'Encerramento dos Objetos
            da.Dispose() 'Encerramento dos Objetos
            conexao.Close()
            conexao.Dispose()
            Return ds
        Catch ex As Exception
            erro = "Falha Função BDDS:" + ex.Message
            Return Nothing
        End Try
        Return Nothing
    End Function

    '    Public Sub BDExecutaComando(ByVal query As String)
    Public Sub BDExec(ByVal Query As String)
        'executa uma querie no bd sem retornar nada ( como delete... )
        erro = ""
        Try
            Dim Com As New MySqlConnection(strcondb)
            Com.Open()
            Dim Cmd As New MySqlCommand(Query, Com)
            Cmd.ExecuteNonQuery()
            Cmd = Nothing
            Com = Nothing
        Catch ex As Exception
            erro = "Falha Função BDExec:" + ex.Message
        End Try
    End Sub
    Public Function BDDR(ByVal Query As String) As MySqlDataReader
        erro = ""
        Try
            dbconn = New MySqlConnection(strcondb)
            dbconn.Open()
            dbCMD = New MySqlCommand(Query, dbconn)
            Dim dr As MySqlDataReader
            dr = dbCMD.ExecuteReader()
            Return dr
        Catch ex As Exception
            erro = "Falha Função BDDR:" + ex.Message
            Return Nothing
        End Try
        Return Nothing
    End Function

    Public Function BDDA(query As String, campo As String) As MySqlDataAdapter
        erro = ""
        Try
            dbconn = New MySqlConnection(strcondb)
            dbconn.Open()
            Dim da As New MySqlDataAdapter(query, dbconn)
            da.SelectCommand = New MySqlCommand(query, dbconn)
            Dim ds As DataSet = New DataSet() 'Criando objeto DataSet para trabalhar com os dados
            da.Fill(ds) 'Preencher objeto Dataset
            dbconn.Close()
            Return da
            da.Dispose()

        Catch ex As Exception
            erro = "Falha Função BDDA:" + ex.Message
            Return Nothing
        End Try
    End Function
    ''' <summary>
    ''' Utilizada quando preciso ter acesso a cada um dos campos retornados pela pesquisa
    ''' </summary>
    ''' <param name="query"></param>
    ''' <returns></returns>
    Public Function BDDT(ByVal query As String) As DataTable 'utilizar com o DataGridView
        Dim a As String
        Try
            erro = ""
            Dim datatb As New DataTable
            a = strcondb
            If a = "" Then
                DefStrConexao()
                a = strcondb
                dbconn = New MySqlConnection(a)
            End If
            dbconn = New MySqlConnection(a)
            Dim dataadp As New MySqlDataAdapter(query, dbconn)
            dataadp.Fill(datatb)
            dbconn.Close()
            Return datatb
            dataadp.Dispose()

        Catch ex As Exception
            erro = "Falha : " + ex.Message
            Return Nothing
        End Try
    End Function


#End Region

End Module

Dicas

Hoje em dia a maioria dos servidores asp net trabalha com o modo de segurança Médio.

No asp clássico era full ou total mas é considerado muito inseguro para um site atual.

Com este tipo de segurança sua aplicação só pode trabalhar nas suas pastas nativas e com seus objetos próprios. Não pode criar nem destruir nada no servidor nem na pasta própria da aplicação.

Existe apenas uma excessão que é o fileupload que é um recurso do servidor feito para subir arquivos e conta com uma segurança reforçada e parametrizável para passar exatamente o que queremos.

Sendo assim, numa aplicação asp net seu código de todas as páginas asp net será colocado numa única dll e depositado na pasta bin do site. Ao publicar a dll e as pastas aspx são enviadas ao site.

Contudo existe restrições sérias. A primeira é que os servidores não aceitam qualquer coisa. Por exemplo, o MySQL.Data deve ser de uma versão que o servidor aceita senão ele não deixará chamar o componente. Por esse motivo consulte o site do seu provedor e verique que versões do MySQL.Data ele aceita.

Outro detalhe é que ao construir seu site asp net você deve colocar o MySQL.Data na sua pasta bin e, na referencia, fazer a procura e apontar para esse MySQL.Data da sua pasta bin porque é assim que ele fará quando a aplicação subir. Se você 'ensinou' o asp net quem deve chamar e aonde de uma maneira que o provedor não irá rejeitar seu site terá mais chances de funcionar.